/**
 * desc:
 * User: zhitao.guo@leweipai.cn
 * Date: 2021/8/16
 * Time: 15:37
 */
// 定义表示计分牌的类
class ScorePanel {
    score: number = 0;
    level: number = 1;

    // 分数和等级所在的元素，在构造函数中进行初始化
    scoreEle: HTMLElement;
    levelEle: HTMLElement;

    // 设置一个变量限制等级
    maxLevel: number;
    // 设置一个变量表示多少分的时候升级
    upScore: number;

    constructor(maxLevel: number = 10, upScore: number = 10) {
        // score和leve 用来记录分数和等级
        this.scoreEle = document.getElementById('score')!;
        this.levelEle = document.getElementById('level')!;
        this.maxLevel = maxLevel;
        this.upScore = upScore;
    }

    // 设置一个加分的方法
    addScore () {
        // 分数自增
        this.scoreEle.innerHTML = ++this.score + '';
        // 判断分数是多少
        if(this.score % this.upScore === 0) {
            this.levelUp();
        }
    }

    // 提升等级的方法
    levelUp () {
        // 设置等级上限
        if(this.level < this.maxLevel ) {
            this.levelEle.innerHTML = ++this.level + '';
        }
    }

}

// 测试代码
// const scorePanel = new ScorePanel();
// for(let i = 0; i< 190; i++ ) {
//     scorePanel.addScore();
// }

export default ScorePanel;
